/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.guaraba.patrimonio.controller;

/**
 *
 * @author marcelo
 */

import br.com.guaraba.patrimonio.controller.util.JsfUtil;
import br.com.guaraba.patrimonio.facade.CategoriaFacade;
import br.com.guaraba.patrimonio.facade.LugarFacade;
import br.com.guaraba.patrimonio.modelo.Categoria;
import br.com.guaraba.patrimonio.modelo.Lugar;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;
import javax.swing.JOptionPane;
import org.apache.log4j.Logger;

/**
 *
 * @author marcelo
 */
@ManagedBean
@SessionScoped
public class LugarController implements Serializable {

    static Logger logger = Logger.getLogger(LugarController.class.getName());
    @ManagedProperty(value = "#{jsfUtil}")
    private JsfUtil jsfUtil;
    private Lugar lugar;
    @EJB
    private LugarFacade lugarFacade;
    private List<Lugar> listaLugar;

    public LugarController() {
        this.lugar = new Lugar();
        listaLugar = new ArrayList<Lugar>();
    }

    public JsfUtil getJsfUtil() {
        return jsfUtil;
    }

    public void setJsfUtil(JsfUtil jsfUtil) {
        this.jsfUtil = jsfUtil;
    }

    public List<Lugar> getListaLugar() {
        return listaLugar;
    }

    public void setListaLugar(List<Lugar> listaLugar) {
        this.listaLugar = listaLugar;
    }

    public Lugar getLugar() {
        return lugar;
    }

    public void setLugar(Lugar lugar) {
        this.lugar = lugar;
    }

    public LugarFacade getLugarFacade() {
        return lugarFacade;
    }

    public void setLugarFacade(LugarFacade lugarFacade) {
        this.lugarFacade = lugarFacade;
    }


    public void NovoLugar() {
        lugar = new Lugar();
    }

    public void Salvar() {        
        try {
            this.lugarFacade.create(lugar);
            jsfUtil.addSuccess("Lugar_salvo_com_sucesso");
            this.NovoLugar();
        } catch (Exception ex) {
            jsfUtil.addErro("Ocoreu_um_erro");
        }
    }

    public void BuscarTodosLugares() {
        this.listaLugar = this.lugarFacade.findAll();
    }

    public void BuscarPorNome(){

        //this.listaInstituicoes = this.instituicaoFacade.FindByNome(instituicao.getNome());
    }

    public void EditarLugar(){
        try {
            this.lugarFacade.edit(lugar);
            jsfUtil.addSuccess("Lugar_salva_com_sucesso");
        } catch (Exception ex) {
            jsfUtil.addErro("Ocoreu_um_erro");
        }
    }

    public List<SelectItem> getSelectLugar(){
        List<Lugar> listaLugares = this.lugarFacade.findAll();
        List<SelectItem> listItens = new ArrayList<SelectItem>();
        for(Lugar l:listaLugares){
            listItens.add(new SelectItem(l.getId(), l.getNome()));
        }
        return listItens;        
    }
    
}
